package com.kehutong.charge.service;

import com.kehutong.charge.dto.ChargeBillItemAppDTO;
import com.kehutong.charge.entity.ChargeBillCommunity;
import com.kehutong.charge.entity.ChargeBillHouse;
import com.kehutong.charge.entity.ChargeBillInterim;
import com.kehutong.charge.entity.ChargeBillItems;
import com.kehutong.charge.service.impl.ChargeBillItemsServiceImpl;
import com.kehutong.charge.service.impl.ChargeBillManageServiceImpl;
import com.kehutong.common.util.Token;
import org.coraframework.inject.ImplementedBy;
import org.coraframework.json.JSONObject;
import org.coraframework.orm.jdbc.Page;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @program: kht
 * @description: 类目账单服务接口
 * @author: joneron
 * @create: 2021/7/5
 **/
@ImplementedBy(ChargeBillItemsServiceImpl.class)
public interface ChargeBillItemsService extends BaseService<ChargeBillItems>{

    /**
     * 查询对象信息
     */
    Object getObj(JSONObject jsonObject);

    /**
     * 费用信息项-阶梯收费项集合
     * @param jsonObject
     * @return
     */
    Object findBillLadderList(JSONObject jsonObject);

    /**
     * 重新生成账单
     * @param jsonObject
     * @return
     */
    Object resetItemBill(JSONObject jsonObject, Token token) throws Exception;

    /**
     * 作废账单
     * @param jsonObject
     * @return
     */
    Object cancelItemBill(JSONObject jsonObject, Token token);


    void pageExport(HttpServletRequest req, HttpServletResponse resp, JSONObject jsonObject);

    /**
     * 手机端-统计查询账单数据-(所有人汇总接口)
     */
    Object findBillManage(JSONObject jsonObject, Token token) throws Exception;

    /**
     * 手机端-统计查询账单数据-（某个人的汇总）
     */
    List<ChargeBillItemAppDTO> findBillUser(JSONObject jsonObject, Token token);

    /**
     * 收费详情-点击下拉数据
     */
    List<ChargeBillItems> findBillDown(JSONObject jsonObject, Token token);

    /**
     * 小程序-所有待缴费金额
     */
    List<ChargeBillItemAppDTO> findBillAmount(JSONObject jsonObject, Token token);

    Object importExcel(JSONObject jsonObject, Token token) throws Exception;

    void templateExport(HttpServletRequest req, HttpServletResponse resp);


    /**
     * 常规付款
     */
    Object submitItems(JSONObject jsonObject,Token token);


    /**
     * 查询结合
     * @param jsonObject
     * @return
     */
    List<ChargeBillItems> findItems(JSONObject jsonObject, Token token);

    void importExcelCheck(JSONObject jsonObject);
}

